#ifndef WORKER_H_
#define WORKER_H_

#include <vector>
#include <string>
#include <boost/shared_ptr.hpp>

//project specific headers
//#include "Validator/Validator.h"

#include "Validator/Scheme.h"
#include "Client/Client.h"
#include "DataContainer.h"
#include "PFileInfo.h"

class Worker
{
	public:
		Worker(PComunicator::DataContainer theContainer,Validator::Scheme theScheme,std::string theAdress,std::string thePort,std::string theDirectory);
		bool IsOK();
		void operator()(); //const

	private:
		//////////////////////////////////////////////////////////////////////////
		//							MEMBER VARIABLES
		//////////////////////////////////////////////////////////////////////////
		bool myAllOK;
		PComunicator::DataContainer myContainer;
		boost::shared_ptr<Client> myClient;
		Validator::Scheme myScheme;
		std::string myDirectory;

		//////////////////////////////////////////////////////////////////////////
		//							MEMBER FUNCTIONS
		//////////////////////////////////////////////////////////////////////////
		void send_data(std::vector<boost::shared_ptr<PComunicator::PFileInfo> > &theInput,std::string theZipPath,std::string predmet);
		std::string write_data(PComunicator::PFileInfo theFile,std::string theUserLogin);

};


#endif